The present invention is directed to the management of character fonts in computer systems for the creation and printing of documents, and more particularly to a system that provides for the synchronization of fonts among different computing and printing resources.
As document publishing technology has transitioned from the use of metal print type to more modern computer-controlled printing systems, such as laser printers, the typeface designs that are available to publishers and other document creators have increased dramatically. As a result, a large variety of fonts can be employed within a publication, and even within a single article, to create a unique appearance and/or draw the reader""s attention to particular subject matter. However, the wealth of fonts that are now available for use creates its own set of problems, namely the management of a large number of fonts among the various systems in which they are used.
One particular concern in this area is the fact that the same document content may be handled by different computer systems at different times during the publishing process. For example, the various articles of a publication may be originally created and laid out at a publisher""s facilities. Due to the need to optimize space on individual pages and throughout the overall publication, the particular font types and sizes that are chosen by the publisher can be quite critical to achieving a desired appearance. Once the layout of the publication has been completed, it might be transferred to a prepress operator, who evaluates the publication for any potential problems before it goes to press. From there, the publication is sent to a service bureau, which is responsible for printing and assembling the pages of the publication. It is necessary for the prepress operator and the service bureau to employ the same fonts as those selected by the publisher, to ensure that the printed pages are the same as those which appeared on the publisher""s computer monitors while the publication was being laid out. If these facilities do not have the same fonts as those selected by the publisher, there may be an attempt to substitute other fonts which have a similar name and/or appearance. However, if all of the characteristics of the substituted font do not match those of the originally selected font, adverse consequences could result. For instance, if the spacing between characters is different in the original font and the substituted font, a reflow of text might occur, wherein words wrap around to succeeding lines of an article at different points from the original layout. In such a case, the number of lines in an article could change, resulting in blank spaces if the number of lines is reduced or, more seriously, missing lines if the number increases. Changes of this nature can prove to be very expensive if they are not identified sufficiently early in the publishing process.
There are a variety of different ways in which mismatches can occur between the fonts selected by various computer systems involved in the layout and printing of a document. Typically, a naming convention is employed for font selection. However, two fonts may have the same name, but they might be of different types. For instance, two well-known font types are Type 1 fonts, which conform to the PostScript page description language, and TrueType fonts, which are designed to appear the same on both a computer monitor and a printed page. Often the same name is employed for a font of one type whose glyphs, e.g. character designs, have the same appearance as those of the other type. Even though two fonts have the same name, e.g.,xe2x80x9cTimesxe2x80x9d, the metrics that are associated with them may be different. If a Type 1 font is substituted for a TrueType font, or vice versa, reflow of text could occur.
Even if different workstations which handle a document are using the same type of font, different versions may be employed. For instance, the publisher may adjust some of the metrics associated with a font, in order to obtain a particular result. One situation of this type can occur when the kerning, i.e., the spacing between individual characters, is adjusted, to fit a line of text within a designated area. If the prepress operator or the printing bureau do not employ this same adjustment, reflow of text can again occur.
These types of experiences are not limited to the publishing industry. They can even occur within a single computer system. For instance, some computer systems place a limit on the number of files that can be open at any given time. If a document requires access to a particular font, the printer driver may not be able to obtain the font because of the open-file limit. In such a case, the driver might substitute another font which is already open, or a bitmap version of the requested font. Such a change can result in wasted output, and hence unnecessary expense.
To solve the problems that are associated with these situations, a font management utility should be able to ensure that the fonts which a user specifies in a document are the same as the fonts that exist on the computer system in which that document is opened, as well as on a printer when that document is printed. To this end, therefore, the font manager should be able to identify a font on the basis of information which is more specific than just the name and/or type of the font.
In the past, different approaches have been employed in an effort to identify the relationship between fonts. For instance, the Panose typeface classification system categorizes fonts on the basis of their visual appearance. Generally speaking, in this system a number of digits are associated with a font. Each digit pertains to a different visual characteristic of the typeface, and its value is based upon the subjective judgment of the typeface designer. For example, the digits might fall within a range of xe2x88x9210,000 to 10,000, and if the designer considers the character strokes to have a medium thickness, or weight, he could assign a value of zero for the weight digit, to indicate a normal thickness. The objective of this type of system is to facilitate font substitution, by permitting users to identify a font whose visual appearance is closest to that of a particular font of interest, based upon human interpretations. However, it does not take into account the physical layout of the font, and therefore is not capable of avoiding problems associated with the layout of text, such as reflow.
Other types of font identification systems employ a more objective identifier. For instance, some systems compute a digital signature that is based upon the entire contents of a font file. When a font is to be employed in connection with a document, its file""s digital signature is computed and compared against that of the original font. If the two digital signatures do not match, this provides an indication that the files differ in some respect. However, since the digital signature is only reflective of the file in its entirety, it does not identify where the difference lies, and consequently the user is not able to determine whether the difference is significant. For instance, two font files may contain the same data, but the ordering of the data may be different. Such a difference may not cause text reflow, and therefore the user may consider the two fonts to be the same. Unfortunately, the digital signature does not provide information which enables such a determination to be made. It only identifies the fact that the two files are somehow different. If two fonts are not the same, the font management utility should be able to identify tie nature of the differences, so that the user can make an informed decision whether to employ a particular font, or choose a different one.
In pursuit of the foregoing objectives, the present invention provides a mechanism for characterizing a font in a manner that unambiguously identifies significant features of the font. This characterization is used to compare different instantiations of a font, e.g. one specified by a document creator and one which exists on a workstation or a printer, to see if the two fonts are the same in all significant respects. If the two fonts are not the same, the comparison process identifies the areas of difference between them, so that a decision can be made to employ a particular font on the basis of whether the detected differences are critical to the appearance of a document. By means of such an approach, document creators, handlers and printers are able to verify that their respective versions of a font are synchronized with one another, as well as the degree to which such synchronization exists.
One primary component of a system which is based upon the foregoing principles is a font reference. In essence, the font reference is a data structure containing objective information which is derived from the intrinsic data of the font and which forms an unambiguous reference to a specific font. This information may include the type of font, its version, changes which affect its metrics, and the like. A font reference can be stored together with the contents of a document, and transmitted with the document over a network or the like. Upon receipt at a host system, the reference can be used to identify an actual font available at that system to be employed in the handling or printing of a document.
Another component of a system which embodies the present invention is an application programming interface for constructing and matching font references. Upon receiving a font reference with a document, the interface iterates through each of the fonts that are available on a host system, and matches their font references against the received font reference. From the resulting comparisons, the interface identifies one or more matching font references, and converts them into the identification of actual fonts on the host system, for use in viewing or printing the document.
Another feature of the present invention comprises font profiles. A font profile contains a collection of font resources for a particular environment. For instance, a font profile that is associated with a document could identify each of the fonts employed within that document. A font profile for a host system identifies all of the fonts that are available for use in that system, and can be employed as a filter by a document creator, to limit document fonts to those which are available at the host system.
The foregoing features of the invention, and the advantages offered thereby, are described in greater detail hereinafter with reference to specific embodiments of the invention illustrated in the accompanying drawings.